//package com.joeyzh.base.filter.filtercondition;
//
//import android.content.Context;
//import android.os.Bundle;
//import android.text.Editable;
//import android.text.TextUtils;
//import android.text.TextWatcher;
//import android.view.KeyEvent;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.ViewGroup;
//import android.view.inputmethod.InputMethodManager;
//import android.widget.EditText;
//import android.widget.ListView;
//import android.widget.TextView;
//
//import com.base.CheckedModel;
//import com.base.FilterBaseFragment;
//import com.base.OnFilterItemChangeCallback;
//import com.base.adapter.CheckedAdapter;
//import com.base.protocol.CheckedModelFilter;
//import com.example.hisense.R;
//import com.example.infrastructure.Common;
//import com.joey.ui.CheckedModel;
//import com.joey.ui.adapter.CheckedAdapter;
//import com.joeyzh.base.filter.BaseFilterItemFragment;
//import com.joeyzh.utils.CheckedModelFilter;
//import com.joeyzh.utils.ModelFilter;
//
//import org.json.JSONObject;
//
//import java.util.ArrayList;
//import java.util.List;
//
//
///**
// * Created by Joey on 2017/9/5.
// * 支持多选单选界面，用于筛选切换
// */
//public class FilterCheckedList<T extends CheckedModel> extends BaseFilterItemFragment implements ModelFilter.OnFilterListener<T> {
//
//    ListView lsvscreen;
//    CheckedAdapter<T> adapter;
//    TextView tvEmpty;
//    EditText editSearch;
//    CheckedModelFilter<T> filter;
//
//    /**
//     * 上一个界面传过来的数据列表
//     */
//    private ArrayList<String> dataList;
//    /**
//     * 从json中解析出 列表每个Item的id对应的key值
//     */
//    private String jsonIdKey;
//    /**
//     * 从json中解析出 列表每个Item的value对应的key值
//     */
//    private String jsonValueKey;
//
//    private List<T> modelList = new ArrayList<>();
//    /**
//     * 当前值
//     */
//    private String currentValue;
//
//    /**
//     * 标示当前是什么筛选条件
//     */
//    private int currentKey;
//
//    private int startIndex = 0;// 初始化组开始选中的坐标
//
//    private boolean isMulti;// 是否多选
//    private boolean searchable;// 是否多选
//    private final String DefaultName = "不限";
//
//    @Override
//    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//        View view = inflater.inflate(R.layout.screen_olddefid_fragment, null);
//        lsvscreen = (ListView) view.findViewById(R.id.lsvscreen);
//        tvEmpty = (TextView) view.findViewById(R.id.tv_empty);
//        editSearch = (EditText) view.findViewById(R.id.txtScreen);
//        editSearch.setOnKeyListener(new View.OnKeyListener() {
//            @Override
//            public boolean onKey(View v, int keyCode, KeyEvent event) {
//                if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
//                    Common.setEditFocus(editSearch);
//                    return true;
//                }
//                return false;
//            }
//        });
//        editSearch.addTextChangedListener(new TextWatcher() {
//            @Override
//            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//
//            }
//
//            @Override
//            public void onTextChanged(CharSequence s, int start, int before, int count) {
//
//            }
//
//            @Override
//            public void afterTextChanged(Editable s) {
//                filter = new ModelFilter(modelList, FilterCheckedList.this).addDefaultList(adapter.getSelectedList())
//                        .execute(editSearch.getText().toString().trim());
//            }
//        });
//        tvEmpty.setText("选择列表为空");
//        dataList = getArguments().getStringArrayList("array");
//        currentKey = getArguments().getInt("key");
//        currentValue = getArguments().getString("value");
//        jsonIdKey = getArguments().getString("jsonIdKey");
//        jsonValueKey = getArguments().getString("jsonValueKey");
//        searchable = getArguments().getBoolean("searchable");
//        if (searchable) {
//            editSearch.setVisibility(View.VISIBLE);
//        } else {
//            editSearch.setVisibility(View.GONE);
//        }
//        isMulti = getArguments().getBoolean("multi", false);// 是否多选:false
//        /**
//         *单选 true多选
//         */
//
/////        startIndex = getArguments().getInt(Constant.STARTINDEX);
//        initListView();
//
//        return view;
//    }
//
//    @Override
//    public void onFilterResult(List<T> results) {
//        adapter.setDataChanged(results);
//        adapter.setSelectedByIds(currentValue.split(","));
//    }
//
//    private void initListView() {
//        if (isMulti)
//            adapter = new CheckedAdapter(getActivity(), modelList, R.layout.item_checked_1, CheckedAdapter.TYPE_MULTI_SELECTED);
//        else {
//            adapter = new CheckedAdapter(getActivity(), modelList, R.layout.item_checked_1);
//        }
//        lsvscreen.setAdapter(adapter);
//        modelList.clear();
//        if (dataList == null) {
//            return;
//        }
//        for (String data : dataList) {
//            CheckedModel model = new CheckedModel();
//            try {
//                JSONObject json = new JSONObject(data);
//                model.setId(json.getString(jsonIdKey));
//                model.setName(json.getString(jsonValueKey));
//
//            } catch (Exception e) {
//                model.setId(data);
//                model.setName(data);
//            }
//            if (TextUtils.isEmpty(data)) {
//                model.setName(DefaultName);
//                model.setId(DefaultName);
//            }
//            modelList.add(model);
//        }
//        adapter.notifyDataSetChanged();
//        adapter.setDefaultKey(DefaultName);
//        adapter.setOnCheckListener(new CheckedAdapter.OnItemCheckListener() {
//            @Override
//            public void onItemCheck(int position, View view, CheckedModel model) {
//                if (model.getId().equalsIgnoreCase(DefaultName)) {
//                    adapter.clearSelected();
//                    adapter.setSelected(0, null);
//                    setScreenValue(DefaultName);
//                    return;
//                }
//                setScreenValue(adapter.getSelectedIds());
////                lsvscreen.setSelection(position);
//                InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
//                imm.hideSoftInputFromWindow(editSearch.getWindowToken(), 0);
//            }
//
//            @Override
//            public void onItemDisCheck(int postion, View view, CheckedModel model) {
//                if (TextUtils.isEmpty(adapter.getSelectedIds()))
//                    setScreenValue(DefaultName);
//                else {
//                    setScreenValue(adapter.getSelectedIds());
//                }
//            }
//        });
//        // 设置选中状态
//        if (TextUtils.isEmpty(currentValue))
//            currentValue = DefaultName;
//        String[] tmpValues = currentValue.split(",");
//        if (tmpValues == null || tmpValues.length == 0) {
//            setSelectedByIds(currentValue);
//        } else {
//            setSelectedByIds(tmpValues);
//        }
//        lsvscreen.setEmptyView((View) tvEmpty.getParent());
//    }
//
//    @Override
//    public void cleanInfo() {
//        if (null == modelList || modelList.isEmpty()) {
//            return;
//        }
//        if (adapter != null) {
//            if (DefaultName.equals(modelList.get(0).getName())) {
//                adapter.setSelected(0, null);
//            } else {
//                adapter.clearSelected();
//            }
//            lsvscreen.setSelection(0);
//        }
//    }
//
//    public void setSelectedByIds(String... ids) {
//        if (adapter != null) {
//            adapter.setSelectedByIds(ids);
//        }
//    }
//
//    private void setScreenValue(String value) {
//        currentValue = value;
//        Common.setEditFocus(editSearch);
//        if (getActivity() instanceof OnFilterItemChangeCallback) {
//            ((OnFilterItemChangeCallback) getActivity()).RefreshDataOrMenuItem(currentKey, currentValue);
//        }
//    }
//
//}
